//---------------------------------------------------------------------------

#ifndef ReseauConceptsH
#define ReseauConceptsH

#include <map.h>

class NoeudReseau;

typedef map <AnsiString, NoeudReseau *> Map_Str_Noeud;

class ReseauConcepts {
private:
  TList * FNoeuds;
  Map_Str_Noeud * FConcepts;
  TList * FNoeudsActifs;
  int FInstant;

  void __fastcall ResetNoeudsActifs(void);
  
public:
  __fastcall ReseauConcepts();
  virtual __fastcall ~ReseauConcepts();

  void __fastcall ReferencerConcept(NoeudReseau * n, const AnsiString & concept);
  void __fastcall DeReferencerConcept(const AnsiString & concept);
  void __fastcall AddNoeud(NoeudReseau * n);
  void __fastcall SupprimerNoeud(NoeudReseau * n);
  void __fastcall AddToNoeudsActifs(NoeudReseau * n);
  void __fastcall NextBattement(void);
  __property int Instant  = { read=FInstant };
};
//---------------------------------------------------------------------------
#endif
